home *** CD-ROM | disk | FTP | other *** search
-
- ---------------------------------------------
- Die ImageLab-Algorithmen und -Datenstrukturen
- ---------------------------------------------
- Stand: ImageLab 2.1 - April 1993
-
-
-
- Einführende Bemerkungen
- =======================
-
- Vielen Dank für Ihre Bereitschaft, hinter die Kulissen schauen zu wollen.
- Zwar funktioniert Imagelab auch dann, wenn Sie nicht genau wissen, warum
- es funktioniert, aber es ist schöner, wenn man weiß, warum etwas so
- geschieht, wie es geschieht. Schauen wir zunächst erst einmal, was uns
- alles bevorsteht:
-
- - Eine Beschreibung der Bilddatenformate, die ImageLab verarbeiten kann.
-
- - Eine Beschreibung des Floyd-Steinberg-Algorithmus, mit dem es möglich
- ist, Graustufen zu simulieren, ohne an Auflösung zu verlieren.
-
- - Eine Beschreibung des Algorithmus, mit dessen Hilfe der Kontrast
- eines Bildes verändert wird.
-
- - Eine Beschreibung des Algorithmus zur Kantenverstärkung: es handelt
- sich um den LaPlace-Operator.
-
- - Eine Beschreibung der Histogramm-Erzeugung, also der Berechnung der
- relativen bzw. absoluten Häufigkeit der Graustufen.
-
- - Eine Beschreibung des Algorithmus zur linearen Spreizung der Grauwerte
- eines Bildes.
-
- - Eine Beschreibung der Transferfunktions-Anwendung.
-
- - Eine Beschreibung der drei unter dem Begriff "Grauwert-Morphologie"
- zusammengefaßten Funktionen.
-
- - Eine Beschreibung der Bitebenen-Darstellung.
-
- - Eine Beschreibung des Algorithmus zur Histogramm-Ebnung.
-
- Ziel dieser Veranstaltung ist es, Sie soweit mit den theoretischen Grundlagen
- der oben angeführten Techniken vertraut zu machen, daß Sie problemlos mit
- der Sprache der weiterführenden Fachliteratur zurecht kommen, falls die
- folgenden Ausführungen Ihren Wissensdurst noch nicht stillen konnten.
-
- Nun denn - beißen Sie sich durch; es lohnt sich.
-
-
-
- Die Bilddatenformate
- ====================
-
- Ursprünglich war vorgesehen, daß ImageLab nur ein Format verarbeiten kann,
- nämlich das B&W256-Format, doch dann stellte sich heraus, daß das
- Videodigitizer-Format der Firma Print Technik bis auf den Header identisch
- mit dem B&W256-Format ist, und so wurde das Print-Technik-Format ebenfalls
- unterstützt. Aus Gründen der Austauschbarkeit mit anderen Rechnertypen
- wurde ab Version 1.1 auch das IFF-Format aufgenommen. Da dieses Format
- im Vergleich zu den beiden erstgenannten recht komplex ist, wird an dieser
- Stelle auf eine Beschreibung verzichtet. Eine IFF-Formatbeschreibung finden
- Sie beispielsweise im "Atari ST Profibuch" von Jankowski/Reschke/Rabich.
-
- Betrachten wir nun das B&W256- und das Print-Technik-Format:
-
- Beide Formate haben am Anfang der Datei einen 10 Bytes langen Header, der
- beim B&W256-Format wie folgt aufgebaut ist:
-
- Magic-Number (6 Bytes): "B&W256" (daher der Name des Formats),
- oder in hex: $422657323536.
-
- Anzahl der Pixel pro Scanzeile (2 Bytes).
-
- Anzahl der Scanzeilen (2 Bytes).
-
- Ein Beispiel (hex.): 42 26 57 32 35 36 02 80 01 90. Dieser 10-Bytes-Header
- sagt aus, daß es sich um eine B&W256-Datei mit 400 Zeilen von jeweils 640
- Pixel Breite handelt.
-
-
- Und nun zum Videodigitizer-Format:
-
- Magic-Number 1 (4 Bytes) in hex: $0F0F0001.
- Anzahl der Pixel pro Scanzeile (2 Bytes).
- Anzahl der Scanzeilen (2 Bytes).
- Magic-Number 2 (2 Bytes) in hex $0001
-
- Auch hierzu ein Beispiel (hex.): 0F 0F 00 01 02 80 01 90 00 01. Auch dieser
- Header sagt aus, daß das Bild 640 * 400 Pixel groß ist.
-
- Nach dem Header folgt für jedes Pixel - Zeile für Zeile - ein Datenbyte;
- im oben genannten Beispielfalle also 640 * 400 = 256000 Bytes. Die
- Datei hat damit eine Länge von 256010 Bytes. Da jedes Pixel durch ein Byte
- repräsentiert wird, können damit Graustufen im Wertebereich von 0 ... 255
- gespeichert (und geladen) werden.
-
-
-
- Der Floyd-Steinberg-Algorithmus
- ===============================
-
- Dieser Algorithmus wurde im Jahre 1975 von R.W. Floyd und L. Steinberg
- vorgestellt. Er handhabt in sehr eleganter Weise das Problem, Graustufen
- auf einem Ausgabegerät simulieren zu müssen, das keine echten Graustufen
- darstellen kann (wie z.B. der Atari ST im Monochrommodus oder ein
- Matrix-Drucker usw.).
-
- Wie funktioniert's ? Wir wissen bereits, daß unser Atari im Monochrommodus
- für jedes Pixel nur zwei Helligkeiten kennt - "schwarz" oder "weiß"
- oder anders ausgedrückt: "Pixel ein" oder "Pixel aus". Die einfachste
- Methode, ein Graustufenbild darzustellen, wäre nun, einen Schwellenwert zu
- definieren, ab dem ein Pixel eingeschaltet wird, z.B. beim Helligkeitswert
- 128. Alles, was eine geringere Helligkeit aufweist, wird als schwarz
- angesehen und alles, was mindestens diesen Schwellenwert erreicht hat, als
- weiß. Es versteht sich von selbst, daß diese Darstellungsweise nicht sehr
- befriedigend ist. Ein Graukeil beispielsweise, der alle Grauwerte
- von 0 ... 255 aufweist, würde in der ersten Hälfte schwarz sein und dann
- in der Mitte schlagartig auf weiß umkippen.
-
- Das eben beschriebene Verfahren ist also so nicht zu gebrauchen, bietet aber
- einen Ansatzpunkt, von dem aus Floyd und Steinberg weitergedacht haben:
-
- Man behält das obige Verfahren bei, merkt sich aber bei dem Pixel, das man
- gerade in Arbeit hat, um wieviele Grauwerte man "daneben" liegt. Wenn also
- die Graustufe des aktuellen Pixels beispielsweise 60 ist und der
- Schwellenwert 128, dann schalten wir das Pixel nicht ein - wir tun so, als
- ob es den Grauwert 0 hätte - und merken uns, daß wir mit unserem 0-Wert um
- 60 Graustufen falsch liegen. Oder andersherum: Wenn die Graustufe 150
- beträgt und der Schwellenwert wiederum 128, dann schalten wir das Pixel ein
- - wir tun so, also ob es den Grauwert 255 hätte - und merken uns, daß
- wir mit unserem 255-Wert um -105 falsch liegen. Wir subtrahieren demnach
- immer den dargestellten Wert vom echten Wert: im ersten Falle 60 - 0, im
- zweiten Fall 150 - 255. Diesen "Fehler" verteilen wir dann auf das Pixel
- direkt rechts neben dem aktuellen Pixel, auf das Pixel direkt unterhalb des
- aktuellen Pixels und auf das Pixel rechts unterhalb des aktuellen Pixels.
- Die Verteilung des "Fehlers" erfolgt nach folgender Gewichtung:
-
- Das Pixel rechts neben dem aktuellen Pixel erhält (Fehler * 0,375)
- auf seinen Grauwert draufaddiert, das Pixel direkt unterhalb des aktuellen
- Pixels ebenfalls (Fehler * 0,375) auf seinen Grauwert drauf und das
- Pixel rechts unten (Fehler * 0,25). Durch diese Fehlerverteilung
- entsteht ein schön chaotisches Muster, das im Auge bei angemessenem
- Betrachtungsabstand einen Eindruck von Grauwerten entstehen läßt. Ein sehr
- angenehmer Nebeneffekt ist, daß ein Bild seine echte Größe beibehält und
- nicht durch die Graustufensimulation größer dargestellt werden muß - wie
- dies z.B. bei manchen Rasterverfahren der Fall ist.
-
- Ein kleiner Wermutstropfen soll nicht verschwiegen werden: wenn sich im Bild
- große Bereiche einer einheitlichen Graustufe befinden, dann kommt es vor,
- daß von den Grauwerten, die außerhalb eines solchen einheitlichen Bereiches
- liegen, Linien in den einheitlichen Bereich "hineinwachsen". Dies hat seine
- Ursache natürlich in der oben beschriebenen Fehler-Fortschreibung. Der Effekt
- ist jedoch - meiner subjektiven Ansicht nach - recht tolerabel. Der
- Floyd-Steinberg-Algorithmus ist nicht mehr als ein Hilfsmittel, um den Mangel
- an Graustufen in der Monitordarstellung so gut es geht auszugleichen. Wie
- schön digitalisierte Bilder mit 256 Graustufen tatsächlich aussehen können,
- das kann man eigentlich nur ermessen, wenn man die Gelegenheit hat, z.B.
- eine bearbeitete B&W256-Datei auf einem Rechner ausgeben zu lassen, der mit
- einem hochauflösenden Analogmonitor bestückt ist oder aber auf einem
- Laserbelichter.
-
- Es gibt die Möglichkeit, die Fehlerverteilung in gewissen Grenzen zu modifi-
- zieren, um den eben erwähnten "Wermutstropfen" zu mindern. Man verteilt den
- Fehler statt in der Gewichtung 3/8 + 3/8 + 2/8 in einer anderen Gewichtung -
- Hauptsache, die Summe ergibt 8/8. Oder man bezieht weitere Umgebungspixel in
- die Fehlerverteilung ein.
-
-
-
- Änderung des Bildkontrastes:
- ============================
-
- Der hier zugrundliegende Algorithmus ähnelt sehr dem bei der Änderung der
- Bildhelligkeit verwendeten. Nur addiert man keinen Offset auf jedes Pixel,
- sondern multipliziert jeden Grauwert mit einem konstanten Faktor: z.B. mit
- dem Faktor 1.1, um eine 10 %ige Steigerung des Kontrasts oder beispiels-
- weise mit dem Faktor 0.9, um eine 10%ige Abschwächung des Kontrasts zu er-
- reichen.
-
-
-
- Kantenverstärkung mittels LaPlace-Operator
- ==========================================
-
- Oft existieren in Bildern mehr oder weniger ausgeprägte Kanten, die man auf
- mathematischem Wege finden und verstärken kann. Dies bewirkt im Bild
- den Eindruck gesteigerter Schärfe, allerdings in starker Abhängigkeit vom
- Bildinhalt. Man benutzt eine sogenannte "Koeffizientenmatrix", um Kanten
- in einem Bild zu finden. Diese Matrix wird quasi über das Bild geschoben und
- die Bildinhalte gemäß der Matrixelemente gewichtet. Bekannte Matrizen sind
- der LaPlace-Operator, der Roberts-Operator und der Sobel-Operator. Da
- ImageLab den LaPlace-Operator verwendet, wollen wir an dieser Stelle auch nur
- dieses Verfahren erörtern. Der LaPlace-Operator wird durch folgende
- Koeffizientenmatrix beschrieben:
-
-
- 0 -1 0 -1 -1 -1
-
- -1 4 -1 oft auch: -1 8 -1
-
- 0 -1 0 -1 -1 -1
-
-
-
- In Worten: Nimm den Grauwert des Pixels, das sich direkt oberhalb des
- aktuellen Pixels befindet. Subtrahiere davon den Grauwert des Pixels, das
- sich direkt links neben dem aktuellen Pixel befindet. Subtrahiere davon den
- Grauwert des Pixels, das sich direkt rechts neben dem aktuellen Pixel befin-
- det. Subtrahiere davon den Grauwert des Pixels, das sich direkt unterhalb des
- aktuellen Pixels befindet. Multipliziere nun den Grauwert des aktuellen
- Pixels mit 4 und addiere das Ergebnis dieser Multiplikation auf die vorher
- berechnete Summe der vier umgebenden Pixel. Das Ergebnis ist der neue Grau-
- wert des aktuellen Pixels.
-
- Soweit das "Kochrezept" der linken Matrix. ImageLab verwendet allerdings
- nicht den eben beschriebenen "klassischen" LaPlace-Operator oder die rechts
- daneben aufgeführte Variante, sondern eine erweiterte Version mit folgender
- Matrix:
-
- -1 -1 -1 -1 -1
- -1 -1 -1 -1 -1
- -1 -1 24 -1 -1
- -1 -1 -1 -1 -1
- -1 -1 -1 -1 -1
-
- Es ist nicht angebracht, den neuen Grauwert tatsächlich so wie er ist zu
- übernehmen. Vielmehr sollte dieser berechnete Grauwert nur zu einem geringen
- Prozentsatz zum Ursprungsgrauwert zugemischt werden; ImageLab bietet dazu
- die Möglichkeit an, einen beliebigen Faktor zwischen 1 und 100 % einzugeben.
-
-
-
- Die Histogramm-Erzeugung
- ========================
-
- Das Histogramm, das ImageLab zeichnet, ist die Darstellung der relativen
- Häufigkeit aller im Bild vorkommenden Grauwerte oder - als Alternative -
- die "absolute Häufigkeit". "Relativ" heißt hier: jeder Grauwert wird auf
- den am häufigsten vorkommenden Grauwert bezogen. Der am häufigsten
- vorkommende Grauwert erzeugt in der Darstellung einen senkrechten "Balken",
- der die gesamte Höhe des Histogramm-Rechtecks ausnutzt. Die "Balken" aller
- anderen Grauwerte sind dann entsprechend kürzer. "Absolute Häufigkeit" will
- heißen, daß die Obergrenze der Darstellung eindeutig festgelegt ist, und
- zwar genau bei der Häufigkeit 10240. Wenn ein Grauwert so oft vorkommt,
- berührt sein "Balken" die obere Kante des Rechtecks, wenn er weniger oft
- vorkommt, ist der "Balken" entsprechend kürzer. Natürlich passiert es auch,
- daß ein Grauwert häufiger als 10240 Mal vorkommt. Dann erreicht der
- "Balken" ebenfalls die Oberkante. Zusätzlich wird darüber eine kleine
- weiße Markierung eingeblendet, um den "Überlauf" zu markieren.
-
- Wie läuft das Ganze ab?
-
- Schon beim Laden der Datei sowie bei allen Manipulationen an den Daten wird
- für jeden einzelnen Grauwert von 0 ... 255 gezählt, wie oft er im Bild
- vorkommt. Es existieren demnach 256 Zähler, die die Häufigkeit jedes
- Grauwertes enthalten. Diese Daten werden bei der Histogramm-Darstellung
- "einfach" in eine Balkendarstellung umgerechnet und auf dem Bildschirm im
- Histogramm-Rechteck dargestellt. Die X-Achse repräsentiert hierbei die
- Graustufen 0 ... 255 (von links nach rechts), die Y-Achse die relative
- Häufigkeit (je häufiger der Grauwert vorkommt, um so höher ist der Balken)
- bzw. die Häufigkeit von 0 ... 10240.
-
- Nun stellt man ein Histogramm nicht deshalb dar, um der Statistik zu frönen.
- Vielmehr dient das Histogramm dazu, erkennen zu können, ob Möglichkeiten
- bestehen, das Bild technisch noch etwas aufzupäppeln. Es ist nicht einfach,
- dies im Detail zu erklären, weil man gerade hierbei nur durch eigene
- Erfahrungen am besten lernt, aber ein paar Hinweise sind vielleicht doch
- angebracht:
-
- Als erstes sollte man anhand des Histogramms prüfen, ob der verfügbare
- Grauwertbereich von 0 ... 255 tatsächlich vom Bild ausgeschöpft wird oder
- ob am oberen und/oder unteren Ende des Spektrums noch Lücken klaffen.
- Wenn der Spielraum nicht genutzt wurde, dann häufen sich die Grauwerte oft
- in einem relativ kleinen Bereich des Histogramms, während links und rechts
- davon ziemlich Ebbe herrscht. Ist links und/oder rechts tatsächlich gar
- kein Grauwert mehr da, hilft die "lineare Spreizung". Ansonsten sollten Sie
- sich mit den Transferfunktionen G bzw. N und der Histogramm-Ebnung vertraut
- machen, die es gestatten, geradezu abenteuerliche Änderungen an der Grauwert-
- verteilung vorzunehmen - zum Segen oder Fluch des in Arbeit befindlichen
- Bildes.
-
-
-
- Die lineare Spreizung der Grauwertverteilung
- ============================================
-
- Mit Hilfe des Histogramms ist es möglich festzustellen, welche Graustufen
- überhaupt im Bild vorkommen und wie häufig diese Graustufen vorhanden sind.
- Sollte nur ein Teil der zur Verfügung stehenden Graustufen existieren, so
- empfiehlt es sich, das Verfahren der "linearen Spreizung" anzuwenden, um
- diese Graustufen über den Gesamtbereich von 0 ... 255 zu verteilen. Die
- mathematische Formulierung lautet so:
-
-
- lookup(n) = a * n + b
-
-
- wobei "n" ein Zähler ist, der über alle möglichen Grauwerte von 0 ... 255
- läuft und die Koeffizienten "a" und "b" wie folgt berechnet werden:
-
-
- a = 255/(Imax - Imin)
-
- b = -a * Imin
-
-
- Bei "Imin" und "Imax" handelt es sich um den niedrigsten und
- um den höchsten im Bild vorkommenden Grauton. Der Ausdruck "lookup(n)"
- muß noch erläutert werden:
-
- In ImageLab existiert ein Datenfeld mit 256 Bytes Länge, das den Namen
- "Lookuptable" trägt. Diese Lookuptable wird folgendermaßen benutzt. Der
- Grauwert jedes einzelnen Pixels wird nicht als der "echte" Grauwert
- angesehen, sondern als Index auf die eben erwähnte "Lookuptable". Der
- Inhalt des mit dem Index adressierten Lookuptable-Elementes wird dann als
- tatsächlicher Grauwert benutzt. Zur Verdeutlichung ein Beispiel:
-
- Nehmen wir an, das aktuelle Pixel hätte den Grauwert 10. Wir schauen nun im
- 10. Element der Lookuptable nach, welcher Grauwert dort steht und benutzen
- diesen Grauwert zur Darstellung.
-
- Im Normalfall beinhaltet die Lookuptable die Grauwerte, die dem Index eines
- jeden Elementes entsprechen; das 0. Element enthält den Wert 0, das 1.
- Element den Wert 1 usw. bis zum 255. Element, das den Wert 255 enthält.
-
- Mit Hilfe des oben angegeben Algorithmus wird die Lookuptable neu belegt und
- damit auf einfache Weise neue Grauwerte erzeugt. Die Lookuptable wird
- übrigens bei allen anderen Grauwert-Manipulationen im ImageLab auch
- verwendet.
-
-
-
- Transferfunktion und Histogramm-Linearisierung
- ==============================================
-
- Wie im obigen Abschnitt bereits angeklungen ist, liegt das Geheimnis der
- Grauwertmanipulation darin, in welcher Weise die Lookuptable belegt wird.
- Der Begriff "Transferfunktion" wird verständlich, wenn Sie sich einmal
- eine Grafik vorstellen, bei der in der X-Achse die 256 Lookuptable-Nummern
- aufgetragen werden und in der Y-Achse die Grauwerte (wie hinlänglich bekannt,
- von 0 ... 255), mit der jeder Lookuptable-Eintrag belegt ist. Wenn wir
- den Maßstab in X- und Y-Achse gleich groß wählen, so müßten wir eine
- eine Gerade mit 45 Grad Steigung erhalten, da dem Looktable-Eintrag 0 der
- Grauwert 0 zugeordnet ist, dem Lookuptable-Eintrag 1 der Grauwert 1 usw.
-
- Bei Aufruf der ImageLab-Funktion "Grauwertoperationen..." können Sie diese
- Gerade sehen.
- Die Gerade ist die voreingestellte "Transferfunktion"; sie bewirkt nichts, da
- jeder Grauwert wieder durch den gleichen Grauwert ersetzt wird.
-
- Ziel der "Histogramm-Linearisierung" ist es aber, zuweilen sehr massiv
- in die Grauwert-Verteilung einzugreifen. Der Weg dazu ist die Änderung der
- Transferfunktion. Eine einfache Manipulation ist die Invertierung: der
- Lookuptable-Eintrag Nummer 0 erhält den Grauwert 255, der Eintrag Nummer 1
- den Grauwert 254 usw. Die Transferfunktion ist demnach eine Gerade mit fal-
- lender Steigung, die Wirkung im Bild ist eine negative Darstellung desselben.
-
- Ein weiteres Beispiel: Sehr oft kommt es vor, daß sich die Grauwerte in einem
- kleinen Bereich des Spektrums zusammenballen, anstatt, wie es wünschenswert
- wäre, sich über den gesamten Bereich zu verteilen. Mit Hilfe der
- Histogramm-Linearisierung ist es kein Problem, dies zu bewirken:
-
- Wir belegen den Lookuptable-Eintrag Nummer 0 bis (so ungefähr) zum
- Lookuptable-Eintrag, bei dem die Grauwertzusammenballung beginnt, mit 0.
- Dies entspricht in der Transferfunktion einer Geraden, die parallel zur
- X-Achse und direkt oberhalb der X-Achse vom Ursprung nach rechts verläuft.
-
- Ab dem Lookuptable-Eintrag, bei dem die Ballung der Grauwerte beginnt, bis
- (ungefähr) zu dem Eintrag, bei dem die Ballung endet, sollten nun alle
- Grauwerte bis 255 verteilt werden - grafisch ausgedrückt: eine Gerade,
- die mit positiver Steigung von 0 ... 255 ansteigt.
-
- Den Rest der Lookuptable-Einträge (ab dem Ende der Grauwert-Ballung) belegen
- wir mit 255.
-
- Was bewirkt dies alles? Da unterhalb und oberhalb der Ballung nichts
- erwähnenswertes geschieht, werden diese Bereiche mit den entsprechenden
- Grenzwerten - unten schwarz (= 0), oben weiß (= 255) - belegt. Der
- interessante Bereich, nämlich der, in dem sich alle vorhandenen Grauwerte
- befinden, wird weiterhin über das gesamte Spektrum gestreckt, sodaß der
- niedrigste Grauwert zu schwarz wird und der hellste Grauwert zu weiß. Im
- Prinzip also eine lineare Spreizung. Nun ist es jedoch genauso gut möglich,
- statt einer Geraden an dieser Stelle eine wie auch immer geformte "Kurve"
- zu zeichnen, beispielsweise eine Exponentialfunktion. Der Effekt einer
- solchen Kurve wäre beispielsweise eine schwächere Differenzierung der
- dunklen Töne und eine stärkere Differenzierung der hellen Töne. Der
- Experimentierfreude sind keine Grenzen gesetzt. Aber bedenken Sie bitte:
-
- Da Ihnen mit Hilfe der ImageLab-Grauwertoperationen eine
- Möglichkeit angeboten wird, alle Grauwerte in beliebiger Form zu
- manipulieren, kann diese Manipulation natürlich auch eine
- Bildverschlechterung bewirken. Leider gibt es kaum Richtlinien, an die Sie
- sich am Anfang, wenn alles noch ungewohnt ist, halten könnten (später ist
- es sowieso eine Frage der Erfahrung). Vielleicht sollten Sie sich zu Beginn
- an die Faustregel halten, zunächst nur mit Transferfunktionen zu
- experimentieren, die eine positive Steigung haben, also von links nach
- rechts ansteigen.
-
-
-
- Grauwert-Morphologie
- ====================
-
- Unter diesem Sammelbegriff werden hier drei Funktionen zusammengefaßt:
-
- - Medianfilterung
- - Dilatation
- - Erosion
-
- Allen dreien ist gemeinsam, daß sie den Grauwert eines Pixels aufgrund der
- Grauwerte der Pixel der unmittelbaren Nachbarschaft beeinflussen. Dazu werden
- zunächst der Grauwert des aktuellen Pixels und die seiner 8 Nachbarn
- ermittelt und in einen Zwischenpuffer geschrieben. Nun sortiert man diese
- neun Grauwerte im Zwischenpuffer in aufsteigender Folge, sodaß der erste
- Wert im Puffer der dunkelste (d.h. zahlenmäßig kleinste) und der letzte
- (neunte) Grauwert im Puffer der hellste (d.h. zahlenmäßig größte) Grauwert
- ist. Welchen neuen Grauwert das aktuelle Pixel nun zugewiesen bekommt, das
- hängt vom verwendeten Verfahren ab:
-
- Bei der Medianfilterung wird der mittlere Wert (d.h. der fünfte Wert
- im Puffer) als neuer Grauwert eingesetzt. Die Wirkung im Bild wird
- manchmal als "Weichzeichnung" umschrieben, ein Ausdruck, den jeder
- Fotograf allerdings ablehnen würde. Es handelt sich vielmehr um eine
- Art "Glättung" der Kanten.
-
- Bei der Dilatation wird der höchste Grauwert (der neunte im Puffer)
- zu einem bestimmten Prozentsatz als neuer Grauwert übernommen; bei
- ImageLab zu 50 % des höchsten Wertes. Die Wirkung im Bild ist
- die, daß sich die hellen Bildbereiche ausdehnen damit die dunklen
- Bereiche kleiner werden - die hellen Bereiche "wachsen" in die
- dunklen hinein.
-
- Die Erosion entspricht einer umgekehrten Dilatation. Es wird der
- niedrigste Grauwert (d.h. der erste) aus dem Puffer zur Bildung des
- neuen Grauwertes herangezogen. Die Bildwirkung: die dunklen Bildteile
- "wachsen" in die hellen hinein.
-
- Die Funktionen sind nicht reversibel, d.h. Sie dürfen nicht erwarten, daß
- nach einer Dilatation und nachfolgender Erosion wieder das Ursprungsbild
- entsteht.
-
-
-
- Bitebenen-Anzeige
- =================
-
- ImageLab verwaltet acht Bitplanes pro Pixel, mit anderen Worten: für jedes
- Pixel werden acht Bits verwendet, um den Grauwert zu beschreiben. Die Anzeige
- einzelner Bitplanes macht nichts anderes, als nur jeweils ein bestimmtes Bit
- aus diesen acht Bits zur Anzeige zu verwenden, z.B. nur das Bit 0. Wenn das
- Bit "1" ist, wird das Pixel weiß dargestellt, ansonsten schwarz. Diese
- Funktion zeigt den Informationsgehalt der einzelnen Planes an und gestattet
- damit Rückschlüsse auf die Redundanz des Bildes. So ist es beispielsweise
- möglich abzuschätzen, wieviele Bits pro Pixel eingespart werden könnten,
- ohne sichbar an Bildinformation zu verlieren.
-
-
-
- Histogramm ebnen
- ================
-
- Oft kann man eine erhebliche Steigerung der (technischen) Bildqualität er-
- reichen, wenn man die Grauwertverteilung so ändert, daß alle Grauwerte in
- etwa gleich häufig im Bild vertreten sind. Dies kann man annähernd erreichen,
- wenn man die relative Summenhäufigkeit der Grauwerte (-> Histogramm) als
- Skalierungsfunktion für die Grauwertumrechnung verwendet.
-
-
-
- Literaturhinweise
- =================
-
- Dieser Text kann nur eine Einführung sein. Im Interesse der Verständlichkeit
- wurde fast komplett auf Mathematik verzichtet, obwohl dadurch (insbesondere
- bei der Beschreibung der Transferfunktion und der Kantenverstärkung) die
- Exaktheit der Beschreibung leidet. Sollte ImageLab Ihr Interesse an der
- Bildverarbeitung geweckt haben und Sie nun nach weiterführender Literatur
- suchen, die dort weitermacht, wo diese Beschreibung (leider) enden muß,
- dann hilft Ihnen die folgende kleine Liste vielleicht weiter.
-
- Die Zeitschriften-Artikel, die die Liste anführen, haben den Vorteil
- gegenüber den Büchern, daß sie zum einen in einer leicht zu verarbeitenden
- Sprache verfaßt sind und zudem Programmierbeispiele beinhalten. Die Bücher
- wiederum sind etwas schwerer verdaulich, dafür aber exakt in ihrer
- Darstellung der Zusammenhänge.
-
-
- Dr. Klaus Dieter Brinkmann und Dr. Hans-Werner Eisermann,
- "Aufbereitung von Bildern", mc 5/1988 und 6/1988
-
- Thomas Bieber, "Pixel Domino", c't 3/1988
-
- Michael Schaale, "Farbenlotto", c't 12/1989
-
- Michael Schaale, "Scharf gerechnet", c't 1/1990
-
- P. Haberäcker, "Digitale Bildverarbeitung", München 1987
-
- William M. Newman und Robert F. Sproull, "Principles of
- Interactive Computer Graphics", Auckland 1983
-
-
-
-
- Autor:
-
- Rainer Frädrich
- Mörler Straße 36
- D-6360 Friedberg
- Btx 06 0319 2816
-
- Co-Autor:
-
- Mauselin Soft
- Oliver Hansen
- Maxstrasse 18
- 5100 Aachen
- email: hansen@pool.informatik.rwth-aachen.de
-
-
- Update-Informationen:
-
- siehe 2_MANUAL.DOC
-
-
-